<!DOCTYPE html>
<html lang="en-US">
    <head>
        <title>Tie::IxHash - ordered associative arrays for Perl - metacpan.org</title>
        <link rel="preload" as="fetch" href="https://metacpan.org/account/login_status" crossorigin="anonymous" />
        <link href="https://metacpan.org/_assets/b8ccceeed47a0652049703d99326a9cea4933443.css" rel="stylesheet" type="text/css">
        <script src="https://metacpan.org/_assets/6bfedafe2d7caa915b7d84f61b45936818e3242e.js" type="text/javascript" defer></script>
        <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of Tie-IxHash - MetaCPAN" href="https://metacpan.org/dist/Tie-IxHash/releases.rss" />
        <link rel="canonical" href="./Tie::IxHash.html" />
        <meta name="description" content="ordered associative arrays for Perl" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
        <link rel="shortcut icon" href="https://metacpan.org/static/icons/favicon.ico">
        <link rel="apple-touch-icon" sizes="152x152" href="https://metacpan.org/static/icons/apple-touch-icon.png">
        <link rel="search" href="https://metacpan.org/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN">
        <script>
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          (function(skey, ga_id){
            ga('create', ga_id, {
              siteSpeedSampleRate : 100,
              storage             : 'none',
              clientId            : localStorage.getItem(skey)
            });
            ga(function(tracker) {
              localStorage.setItem(skey, tracker.get('clientId'));
            });
            ga('send', 'pageview');
          })('ga:clientId', 'UA-27829474-1');
        </script>
<meta name="twitter:card"        content="summary" />
<meta name="twitter:url"         content="https://metacpan.org/pod/Tie::IxHash" />
<meta name="twitter:title"       content="Tie::IxHash" />
<meta name="twitter:description" content="ordered associative arrays for Perl" />
<meta name="twitter:site"        content="metacpan" />
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="header-logo-large hidden-xs">
              <a href="https://metacpan.org/" tabindex="0">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#logo" />
                </svg>
              </a>
            </div>
            <div class="header-logo-icon visible-xs">
              <a href="https://metacpan.org/">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#dots" />
                </svg>
              </a>
            </div>
            <ul class="nav navbar-nav menu-items hidden-xs hidden-sm">
              <li><a href="https://metacpan.org/about">About</a></li>
              <li><a href="https://metacpan.org/about/sponsors">Sponsor</a></li>
              <li><a href="https://grep.metacpan.org/">grep::cpan</a></li>
              <li><a href="https://metacpan.org/recent">Recent</a></li>
              <li><a href="https://metacpan.org/about/faq">FAQ</a></li>
              <li><a href="https://metacpan.org/tools">Tools</a></li>
              <li><a href="https://fastapi.metacpan.org/">API</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <button type="button" class="searchbar-btn visible-xs visible-sm">
                    <i class="fa fa-search button-fa-icon"></i>
                </button>
                <form action="https://metacpan.org/search" class="searchbar-form visible-md visible-lg search-form form-horizontal">
                   <input type="hidden" name="size" id="metacpan_search-size" value="20">
                  <div class="form-group">
                      <div class="search-group">
                        <i class="fa fa-search"></i>
                        <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value="">
                      </div>
                  </div>
                </form>
                    <li class="icon-slidepanel visible-xs visible-sm">
                      <button data-toggle="slidepanel" data-target=".slidepanel">
                        <span class="button-fa-icon">
                          <i class="fa fa-bars slidepanel-open"></i>
                          <i class="fa fa-times slidepanel-close"></i>
                        </span>
                      </button>
                    </li>
                <form action="https://metacpan.org/account/logout" method="POST" id="metacpan-logout"></form>
                <li class="dropdown logged_in" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="https://metacpan.org/account/identities">Identities</a></li>
                        <li><a href="https://metacpan.org/account/profile">Profile</a></li>
                        <li><a href="https://metacpan.org/account/favorite/list">Favorites</a></li>
                        <li>
                            <a href="./Tie::IxHash.html#" type="button" onclick="$('#metacpan-logout').submit(); return false">
                              Logout
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_out" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="https://metacpan.org/login/github">
                                <i class="fab fa-github fa-fw"></i>
                                GitHub
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/twitter">
                                <i class="fab fa-twitter fa-fw"></i>
                                Twitter
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/google">
                                <i class="fab fa-google fa-fw"></i>
                                Google
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_placeholder">
                    <button>
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                    </button>
                </li>
            </ul>
        </nav>
        <div class="page-content ">
          <!--
          <div class="top-notify-banner">
            <i class="fas fa-info-circle"></i>
          </div>
          -->
          <nav class="sidebar">
            <div class="slidepanel">
              <ul class="nav-list ">
    <li class="nav-header no-margin-top">
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The date that this version of Tie-IxHash was released.">
      <span class="relatize">24 Feb 2013 11:37:35 UTC</span>
    </li>
  <li>
    Distribution: <a href="https://metacpan.org/dist/Tie-IxHash">Tie-IxHash</a>
  </li>
  <li>
    Module version: 1.23
  </li>
  <li>
    <a data-keyboard-shortcut="g s" href="https://metacpan.org/dist/Tie-IxHash/source/lib/Tie/IxHash.pm">Source</a>
    (<a href="https://metacpan.org/dist/Tie-IxHash/source/lib/Tie/IxHash.pm?raw=1">raw</a>)
  </li>
  <li>
    <a data-keyboard-shortcut="g b" href="https://metacpan.org/dist/Tie-IxHash/source/lib/Tie">Browse</a>
    (<a href="https://metacpan.org/dist/Tie-IxHash/source/lib/Tie?raw=1">raw</a>)
  </li>
    <li>
      <a data-keyboard-shortcut="g c" href="https://metacpan.org/dist/Tie-IxHash/changes">Changes</a>
    </li>
    <li>
      <a class="nopopup" href="https://metacpan.org/dist/Tie-IxHash/contribute">How to Contribute</a>
    </li>
    <li>
        <a rel="noopener nofollow" data-keyboard-shortcut="g r" href="https://github.com/chorny/Tie-IxHash">Repository</a>
    </li>
    <li>
      <a rel="noopener nofollow" data-keyboard-shortcut="g i" href="https://rt.cpan.org/Public/Dist/Display.html?Name=Tie-IxHash">Issues</a>
      (4)
    </li>
    <li>
      <a rel="noopener nofollow" href="http://matrix.cpantesters.org/?dist=Tie-IxHash+1.23" title="Matrix">Testers</a>
        <span title="(pass / fail / na)">(<a rel="noopener nofollow" href="https://www.cpantesters.org/distro/T/Tie-IxHash.html?oncpan=1&amp;distmat=1&amp;version=1.23&amp;grade=2" style="color: #090">1872</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/T/Tie-IxHash.html?oncpan=1&amp;distmat=1&amp;version=1.23&amp;grade=3" style="color: #900">1</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/T/Tie-IxHash.html?oncpan=1&amp;distmat=1&amp;version=1.23&amp;grade=4">0</a>)</span>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpants.cpanauthors.org/release/CHORNY/Tie-IxHash-1.23">Kwalitee</a>
    </li>
    <li>
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The # people with an indexing permission on Tie-IxHash who have released something to CPAN in the last 2 years (i.e. the # people likely able to release critical fixes in a timely manner)">
      Bus factor: 0
      </div>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpancover.com/latest/Tie-IxHash-1.23/index.html">70.55% Coverage </a>
    </li>
    <li>
      License: perl_5
    </li>
    <li>
      Perl: v5.5.0
    </li>
    <li class="nav-header">Activity</li>
    <li>
<div class="activity-graph">
    <img src="https://metacpan.org/dist/Tie-IxHash/activity.svg?res=month" />
    <div class="comment">24 month</div>
</div>
    </li>
    <li class="nav-header">Tools</li>
    <li>
      <a itemprop="downloadUrl" href="https://cpan.metacpan.org/authors/id/C/CH/CHORNY/Tie-IxHash-1.23.tar.gz">
      Download (<span itemprop="fileSize">9.13KB</span>)</a>
    </li>
    <li>
      <a href="https://explorer.metacpan.org/?url=%2Fmodule%2FCHORNY%2FTie-IxHash-1.23%2Flib%2FTie%2FIxHash.pm">
        MetaCPAN Explorer
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Tie-IxHash/permissions">
        Permissions
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Tie-IxHash/releases.rss">
        Subscribe to distribution
      </a>
    </li>
    <li>
      <button class="btn btn-link" data-toggle="modal" data-target="#metacpan_install-instructions-dialog">
        Install Instructions
      </button>
    </li>
    <li>
      <form action="https://metacpan.org/search">
        <input type="hidden" name="q" value="dist:Tie-IxHash">
        <input type="search" name="q" placeholder="Search distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
      </form>
    </li>
    <li>
      <form action="https://grep.metacpan.org/search">
        <input type="hidden" name="qd" value="Tie-IxHash">
        <input type="hidden" name="source" value="metacpan">
        <input type="search" name="q" placeholder="grep distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
     </form>
    </li>
    <li class="version-jump">
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/Tie/IxHash.pm&#39;" class="form-control tool-bar-form">
  <option disabled selected>Jump to version</option>
<option
  disabled
  value="CHORNY/Tie-IxHash-1.23"
>1.23
  (CHORNY on 2013-02-24)</option>
<option
  
  value="CHORNY/Tie-IxHash-1.22"
>1.22
  (CHORNY on 2010-02-27)</option>
<option
  
  value="GSAR/Tie-IxHash-1.21"
>1.21
  (GSAR on 1998-01-28)</option>
<optgroup label="BackPAN">'
<option
  
  value="GSAR/Tie-IxHash-1.2"
>1.2
  (GSAR on 1997-02-18)</option>
</optgroup>
</select>
    </li>
    <li class="version-diff">
<select onchange="document.location.href='/release/CHORNY/Tie-IxHash-1.23/diff/' + encodeURIComponent(this.value) + '/lib/Tie/IxHash.pm'
" class="form-control tool-bar-form">
  <option disabled selected>Diff with version</option>
<option
  disabled
  value="CHORNY/Tie-IxHash-1.23"
>1.23
  (CHORNY on 2013-02-24)</option>
<option
  
  value="CHORNY/Tie-IxHash-1.22"
>1.22
  (CHORNY on 2010-02-27)</option>
<option
  
  value="GSAR/Tie-IxHash-1.21"
>1.21
  (GSAR on 1998-01-28)</option>
<optgroup label="BackPAN">'
<option
  
  value="GSAR/Tie-IxHash-1.2"
>1.2
  (GSAR on 1997-02-18)</option>
</optgroup>
</select>
    </li>

    <li>
<ul class="dependencies">
  <li class="nav-header">Dependencies</li>
  <li><i class="ttip" title="dynamic_config enabled">unknown</i></li>
  <li>
    <hr>
  </li>
  <li>
    <a href="https://metacpan.org/module/Tie::IxHash/requires">Reverse dependencies</a>
  </li>
  <li>
    <a href="http://deps.cpantesters.org/?module=Tie%3A%3AIxHash">CPAN Testers List</a>
  </li>
  <li>
    <a href="https://cpandeps.grinnz.com/?dist=Tie-IxHash">Dependency graph</a>
  </li>
</ul>
    </li>
    <li class="nav-header">Permalinks</li>
    <li>
      <a href="https://metacpan.org/release/CHORNY/Tie-IxHash-1.23/view/lib/Tie/IxHash.pm">This version</a>
    </li>
    <li>
      <a href="./Tie::IxHash.html">Latest version</a>
    </li>
    <li>
<div class="plussers">
<div class="nav-header">++ed by:</div>
<div>
<a class="display-all" href="https://metacpan.org/author/ADAMJS"><img src="https://www.gravatar.com/avatar/62c7b6e864d6509cff5839543c676614?d=identicon&amp;s=20" title="ADAMJS" alt="ADAMJS"></a>
<a class="display-all" href="https://metacpan.org/author/KEEDI"><img src="https://www.gravatar.com/avatar/95f905a7a4ccc573c711e9d264c0fde8?d=identicon&amp;s=20" title="KEEDI" alt="KEEDI"></a>
<a class="display-all" href="https://metacpan.org/author/MJGARDNER"><img src="https://www.gravatar.com/avatar/6a6af58937682c4102ae0f02b2b8ff3d?d=identicon&amp;s=20" title="MJGARDNER" alt="MJGARDNER"></a>
<a class="display-all" href="https://metacpan.org/author/PERLANCAR"><img src="https://www.gravatar.com/avatar/c66c9e215cc2342796cd87ca82d044a8?d=identicon&amp;s=20" title="PERLANCAR" alt="PERLANCAR"></a>
<a class="display-all" href="https://metacpan.org/author/MARIOROY"><img src="https://www.gravatar.com/avatar/112c64e088284a78b9afbcb83c125613?d=identicon&amp;s=20" title="MARIOROY" alt="MARIOROY"></a>
</div>
<!-- Display counts of plussers-->
<div>
    <a href="https://metacpan.org/dist/Tie-IxHash/plussers">11 PAUSE users</a>
</div>
<div>
    7 non-PAUSE users
</div>
</div>
    </li>
    <li>
<div id="metacpan_contributors">
  <div>
    <button class="btn-link"
      onclick="$(this).hide(); $('#metacpan_contributors ul').slideDown(); return false;"
    >and 1 contributors</button>
  </div>
  <ul style="display: none">
    <li class="contributor"
    >
      Gurusamy Sarathy        gsar@umich.edu
    </li>
  </ul>
</div>
    </li>
              </ul>
            </div>
          </nav>
          <div class="content-navigation">
<div class="breadcrumbs">
  <span>
    <a data-keyboard-shortcut="g a" rel="author" href="https://metacpan.org/author/CHORNY" class="author-name">Alexandr Ciornii</a>
  </span>
  <span>&nbsp;/&nbsp;</span>
  <div class="release dist-release status-latest maturity-released">
    <span class="dropdown"><b class="caret"></b></span>
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/Tie/IxHash.pm&#39;" class="">
<option
  selected
  value="CHORNY/Tie-IxHash-1.23"
>1.23
  (CHORNY on 2013-02-24)</option>
<option
  
  value="CHORNY/Tie-IxHash-1.22"
>1.22
  (CHORNY on 2010-02-27)</option>
<option
  
  value="GSAR/Tie-IxHash-1.21"
>1.21
  (GSAR on 1998-01-28)</option>
<optgroup label="BackPAN">'
<option
  
  value="GSAR/Tie-IxHash-1.2"
>1.2
  (GSAR on 1997-02-18)</option>
</optgroup>
</select>
    <a data-keyboard-shortcut="g d" class="release-name" href="https://metacpan.org/dist/Tie-IxHash">Tie-IxHash-1.23</a>
  </div>
<span class="river-gauge-gauge">
  <svg width="24px"
       height="15px"
       version="1.1"
       xmlns="http://www.w3.org/2000/svg"
       xmlns:xlink="http://www.w3.org/1999/xlink">

    <g>
      <title>        River stage four &#10;
          • 152 direct dependents &#10;          • 1972 total dependents
      </title>

      <rect x="0"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="5"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="10"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="15"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="20"  y="0" width="4" height="15" fill="#e4e2e2" />
    </g>
  </svg>

</span>
<div id="Tie-IxHash-fav" class="logged_in">
<form action="https://metacpan.org/account/favorite/add" style="display: inline" onsubmit="return favDistribution(this)">
    <input type="hidden" name="remove" value="0">
    <input type="hidden" name="release" value="Tie-IxHash-1.23">
    <input type="hidden" name="author" value="CHORNY">
    <input type="hidden" name="distribution" value="Tie-IxHash">
    <button type="submit" class="favorite highlight"><span>18</span> ++</button>
</form>
</div>
<div class="logged_out">
<a href="./Tie::IxHash.html" onclick="alert('Please sign in to add favorites'); return false" class="favorite highlight">
<span>18</span> ++</a>
</div>
   / <span>Tie::IxHash</span>
</div>
          </div>
          <main class="content">


<nav class="toc">
  <div class="toc-header"><strong>Contents</strong></div>
<ul>
  <li><a href="./Tie::IxHash.html#NAME">NAME</a></li>
  <li><a href="./Tie::IxHash.html#SYNOPSIS">SYNOPSIS</a></li>
  <li><a href="./Tie::IxHash.html#DESCRIPTION">DESCRIPTION</a>
    <ul>
      <li><a href="./Tie::IxHash.html#Standard-TIEHASH-Interface">Standard TIEHASH Interface</a></li>
      <li><a href="./Tie::IxHash.html#Object-Interface">Object Interface</a></li>
    </ul>
  </li>
  <li><a href="./Tie::IxHash.html#EXAMPLE">EXAMPLE</a></li>
  <li><a href="./Tie::IxHash.html#BUGS">BUGS</a></li>
  <li><a href="./Tie::IxHash.html#NOTE">NOTE</a></li>
  <li><a href="./Tie::IxHash.html#TODO">TODO</a></li>
  <li><a href="./Tie::IxHash.html#AUTHOR">AUTHOR</a></li>
  <li><a href="./Tie::IxHash.html#VERSION">VERSION</a></li>
  <li><a href="./Tie::IxHash.html#SEE-ALSO">SEE ALSO</a></li>
</ul></nav>
<div class="pod anchors">
<h1 id="NAME">NAME</h1>

<p>Tie::IxHash - ordered associative arrays for Perl</p>

<h1 id="SYNOPSIS">SYNOPSIS</h1>

<pre><code>    # simple usage
    use Tie::IxHash;
    tie HASHVARIABLE, &#39;Tie::IxHash&#39; [, LIST];

    # OO interface with more powerful features
    use Tie::IxHash;
    TIEOBJECT = Tie::IxHash-&gt;new( [LIST] );
    TIEOBJECT-&gt;Splice( OFFSET [, LENGTH [, LIST]] );
    TIEOBJECT-&gt;Push( LIST );
    TIEOBJECT-&gt;Pop;
    TIEOBJECT-&gt;Shift;
    TIEOBJECT-&gt;Unshift( LIST );
    TIEOBJECT-&gt;Keys( [LIST] );
    TIEOBJECT-&gt;Values( [LIST] );
    TIEOBJECT-&gt;Indices( LIST );
    TIEOBJECT-&gt;Delete( [LIST] );
    TIEOBJECT-&gt;Replace( OFFSET, VALUE, [KEY] );
    TIEOBJECT-&gt;Reorder( LIST );
    TIEOBJECT-&gt;SortByKey;
    TIEOBJECT-&gt;SortByValue;
    TIEOBJECT-&gt;Length;</code></pre>

<h1 id="DESCRIPTION">DESCRIPTION</h1>

<p>This Perl module implements Perl hashes that preserve the order in which the hash elements were added. The order is not affected when values corresponding to existing keys in the IxHash are changed. The elements can also be set to any arbitrary supplied order. The familiar perl array operations can also be performed on the IxHash.</p>

<h2 id="Standard-TIEHASH-Interface"><a id="Standard"></a>Standard <code>TIEHASH</code> Interface</h2>

<p>The standard <code>TIEHASH</code> mechanism is available. This interface is recommended for simple uses, since the usage is exactly the same as regular Perl hashes after the <code>tie</code> is declared.</p>

<h2 id="Object-Interface"><a id="Object"></a>Object Interface</h2>

<p>This module also provides an extended object-oriented interface that can be used for more powerful operations with the IxHash. The following methods are available:</p>

<dl>

<dt id="FETCH,-STORE,-DELETE,-EXISTS"><a id="FETCH"></a><a id="FETCH--STORE--DELETE--EXISTS"></a>FETCH, STORE, DELETE, EXISTS</dt>
<dd>

<p>These standard <code>TIEHASH</code> methods mandated by Perl can be used directly. See the <code>tie</code> entry in perlfunc(1) for details.</p>

</dd>
<dt id="Push,-Pop,-Shift,-Unshift,-Splice"><a id="Push"></a><a id="Push--Pop--Shift--Unshift--Splice"></a>Push, Pop, Shift, Unshift, Splice</dt>
<dd>

<p>These additional methods resembling Perl functions are available for operating on key-value pairs in the IxHash. The behavior is the same as the corresponding perl functions, except when a supplied hash key already exists in the hash. In that case, the existing value is updated but its order is not affected. To unconditionally alter the order of a supplied key-value pair, first <code>DELETE</code> the IxHash element.</p>

</dd>
<dt id="Keys">Keys</dt>
<dd>

<p>Returns an array of IxHash element keys corresponding to the list of supplied indices. Returns an array of all the keys if called without arguments. Note the return value is mostly only useful when used in a list context (since perl will convert it to the number of elements in the array when used in a scalar context, and that may not be very useful).</p>

<p>If a single argument is given, returns the single key corresponding to the index. This is usable in either scalar or list context.</p>

</dd>
<dt id="Values">Values</dt>
<dd>

<p>Returns an array of IxHash element values corresponding to the list of supplied indices. Returns an array of all the values if called without arguments. Note the return value is mostly only useful when used in a list context (since perl will convert it to the number of elements in the array when used in a scalar context, and that may not be very useful).</p>

<p>If a single argument is given, returns the single value corresponding to the index. This is usable in either scalar or list context.</p>

</dd>
<dt id="Indices">Indices</dt>
<dd>

<p>Returns an array of indices corresponding to the supplied list of keys. Note the return value is mostly only useful when used in a list context (since perl will convert it to the number of elements in the array when used in a scalar context, and that may not be very useful).</p>

<p>If a single argument is given, returns the single index corresponding to the key. This is usable in either scalar or list context.</p>

</dd>
<dt id="Delete">Delete</dt>
<dd>

<p>Removes elements with the supplied keys from the IxHash.</p>

</dd>
<dt id="Replace">Replace</dt>
<dd>

<p>Substitutes the IxHash element at the specified index with the supplied value-key pair. If a key is not supplied, simply substitutes the value at index with the supplied value. If an element with the supplied key already exists, it will be removed from the IxHash first.</p>

</dd>
<dt id="Reorder">Reorder</dt>
<dd>

<p>This method can be used to manipulate the internal order of the IxHash elements by supplying a list of keys in the desired order. Note however, that any IxHash elements whose keys are not in the list will be removed from the IxHash.</p>

</dd>
<dt id="Length">Length</dt>
<dd>

<p>Returns the number of IxHash elements.</p>

</dd>
<dt id="SortByKey">SortByKey</dt>
<dd>

<p>Reorders the IxHash elements by textual comparison of the keys.</p>

</dd>
<dt id="SortByValue">SortByValue</dt>
<dd>

<p>Reorders the IxHash elements by textual comparison of the values.</p>

</dd>
<dt id="Clear">Clear</dt>
<dd>

<p>Resets the IxHash to its pristine state: with no elements at all.</p>

</dd>
</dl>

<h1 id="EXAMPLE">EXAMPLE</h1>

<pre><code>    use Tie::IxHash;

    # simple interface
    $t = tie(%myhash, &#39;Tie::IxHash&#39;, &#39;a&#39; =&gt; 1, &#39;b&#39; =&gt; 2);
    %myhash = (first =&gt; 1, second =&gt; 2, third =&gt; 3);
    $myhash{fourth} = 4;
    @keys = keys %myhash;
    @values = values %myhash;
    print(&quot;y&quot;) if exists $myhash{third};

    # OO interface
    $t = Tie::IxHash-&gt;new(first =&gt; 1, second =&gt; 2, third =&gt; 3);
    $t-&gt;Push(fourth =&gt; 4); # same as $myhash{&#39;fourth&#39;} = 4;
    ($k, $v) = $t-&gt;Pop;    # $k is &#39;fourth&#39;, $v is 4
    $t-&gt;Unshift(neg =&gt; -1, zeroth =&gt; 0); 
    ($k, $v) = $t-&gt;Shift;  # $k is &#39;neg&#39;, $v is -1
    @oneandtwo = $t-&gt;Splice(1, 2, foo =&gt; 100, bar =&gt; 101);

    @keys = $t-&gt;Keys;
    @values = $t-&gt;Values;
    @indices = $t-&gt;Indices(&#39;foo&#39;, &#39;zeroth&#39;);
    @itemkeys = $t-&gt;Keys(@indices);
    @itemvals = $t-&gt;Values(@indices);
    $t-&gt;Replace(2, 0.3, &#39;other&#39;);
    $t-&gt;Delete(&#39;second&#39;, &#39;zeroth&#39;);
    $len = $t-&gt;Length;     # number of key-value pairs

    $t-&gt;Reorder(reverse @keys);
    $t-&gt;SortByKey;
    $t-&gt;SortByValue;</code></pre>

<h1 id="BUGS">BUGS</h1>

<p>You cannot specify a negative length to <code>Splice</code>. Negative indexes are OK, though.</p>

<h1 id="NOTE">NOTE</h1>

<p>Indexing always begins at 0 (despite the current <code>$[</code> setting) for all the functions.</p>

<h1 id="TODO">TODO</h1>

<p>Addition of elements with keys that already exist to the end of the IxHash must be controlled by a switch.</p>

<p>Provide <code>TIEARRAY</code> interface when it stabilizes in Perl.</p>

<p>Rewrite using XSUBs for efficiency.</p>

<h1 id="AUTHOR">AUTHOR</h1>

<p>Gurusamy Sarathy gsar@umich.edu</p>

<p>Copyright (c) 1995 Gurusamy Sarathy. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.</p>

<h1 id="VERSION">VERSION</h1>

<p>Version 1.23</p>

<h1 id="SEE-ALSO"><a id="SEE"></a>SEE ALSO</h1>

<p>perl(1)</p></div>

<div id="metacpan_install-instructions-dialog" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Module Install Instructions</h4>
      </div>
      <div class="modal-body">
        <p>To install Tie::IxHash, copy and paste the appropriate command in to your terminal.</p>
        <p><a href="https://metacpan.org/dist/App-cpanminus/view/bin/cpanm">cpanm</a></p>
        <pre><code>cpanm Tie::IxHash</code></pre>
        <p><a href="https://metacpan.org/pod/CPAN">CPAN shell</a></p>
        <pre><code>perl -MCPAN -e shell
install Tie::IxHash</code></pre>
        <p>For more information on module installation, please visit <a href="https://www.cpan.org/modules/INSTALL.html">the detailed CPAN module installation guide</a>.</p>
      </div>
      <div class="modal-footer">
        <a href="./Tie::IxHash.html#" data-dismiss="modal" class="btn">Close</a>
      </div>
    </div>
  </div>
</div>
          </main>
          <div class="content-pagination">
          </div>
        </div>
        <footer class="footer">
          <div class="footer-container">
            <div class="footer-social">
              <div class="footer-link footer-logo">
                <a href="https://metacpan.org/">
                  <img src="https://metacpan.org/static/images/metacpan-logo.svg" alt="MetaCPAN" />
                </a>
              </div>
              <a class="footer-social-link" href="https://github.com/metacpan">
                <i class="fab fa-github-square"></i>
              </a>
              <a class="footer-social-link" href="https://fosstodon.org/@metacpan">
                <i class="fab fa-mastodon"></i>
              </a>
            </div>
            <div class="footer-links">
              <div class="footer-link">
                  <a href="https://metacpan.org/about">About</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/sponsors">Sponsor</a>
              </div>
              <div class="footer-link">
                  <a href="https://grep.metacpan.org">grep::cpan</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/recent">Recent</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/faq">FAQ</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/tools">Tools</a>
              </div>
              <div class="footer-link">
                  <a href="https://fastapi.metacpan.org/">API</a>
              </div>
              <div class="footer-link">
                  <a href="https://www.perl.org/">Perl.org</a>
              </div>
            </div>
            <div class="footer-sponsors">
              <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener">
                <img class="footer-sponsor-bytemark" src="https://metacpan.org/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener">
                <img class="footer-sponsor-liquidweb" src="https://metacpan.org/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener">
                <img class="footer-sponsor-deriv" src="https://metacpan.org/static/images/sponsors/deriv.svg" alt="Deriv logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener">
                <img class="footer-sponsor-geocode" src="https://metacpan.org/static/images/sponsors/geocodelogo.svg" alt="Geocode logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener">
                <img class="footer-sponsor-fastly" src="https://metacpan.org/static/images/sponsors/fastly_logo.svg" alt="Fastly logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener">
                <img class="footer-sponsor-opencage" src="https://metacpan.org/static/images/sponsors/open-cage.svg" alt="OpenCage logo">
              </a>
            </div>
          </div>
        </footer>
        <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Keyboard Shortcuts</h4>
              </div>
              <div class="modal-body row">
<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Global</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>s</kbd>
        </td>
        <td>Focus search bar</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>?</kbd>
        </td>
        <td>Bring up this help dialog</td>
      </tr>
    </tbody>
  </table>

  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>GitHub</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>p</kbd>
        </td>
        <td>Go to pull requests</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>go to github issues (only if github is preferred repository)</td>
      </tr>
    </tbody>
  </table>
</div>

<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>POD</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>a</kbd>
        </td>
        <td>Go to author</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>c</kbd>
        </td>
        <td>Go to changes</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>Go to issues</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>d</kbd>
        </td>
        <td>Go to dist</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>r</kbd>
        </td>
        <td>Go to repository/SCM</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>s</kbd>
        </td>
        <td>Go to source</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>b</kbd>
        </td>
        <td>Go to file browse</td>
      </tr>

    </tbody>
  </table>
</div>

<div class="col-md-12">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Search terms</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><em>module:</em> (e.g. <a href="https://metacpan.org/search?q=module%3APlugin">module:Plugin</a>)</td>
      </tr>
      <tr>
        <td><em>distribution:</em> (e.g. <a href="https://metacpan.org/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td>
      </tr>
      <tr>
        <td><em>author:</em> (e.g. <a href="https://metacpan.org/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td>
      </tr>
      <tr>
        <td><em>version:</em> (e.g. <a href="https://metacpan.org/search?q=version%3A1.00">version:1.00</a>)</td>
      </tr>
    </tbody>
  </table>
</div>
              </div>
              <div class="modal-footer"></div>
            </div>
          </div>
        </div>
    </body>
</html>
